package aip.project.service;

import java.util.ArrayList;
import java.util.List;

import org.slim3.datastore.Datastore;

import aip.project.model.Offerte;
import aip.project.model.ProdOff;
import aip.project.model.Prodotto;

import com.google.appengine.api.datastore.Key;
import com.google.appengine.api.datastore.Transaction;


public class ProdOffService {

    public List<Prodotto> getProdotti(Key k){
        List<ProdOff> l = Datastore.get(Offerte.class,k).getOfferteProdottiListRef().getModelList();
        List<Prodotto> pl = new ArrayList<Prodotto>();
        for (ProdOff op: l){
            pl.add(op.getProdottiRef().getModel());
        }
        return pl;
    }
    
    public List<Offerte> getOfferte(Key k){
        List<ProdOff> l = Datastore.get(Prodotto.class,k).getOfferteProdottiListRef().getModelList();
        List<Offerte> ol = new ArrayList<Offerte>();
        for (ProdOff op: l){
            ol.add(op.getOfferteRef().getModel());
        }
        return ol;
    }
    public Key addOffertaProdotto (Key offertaRef, Key prodottoRef){
        ProdOff op = new ProdOff();
        op.getProdottiRef().setModel(Datastore.get(Prodotto.class,prodottoRef));
        op.getOfferteRef().setModel(Datastore.get(Offerte.class,offertaRef));
        Transaction tx = Datastore.beginTransaction();
        Datastore.put(op);
        tx.commit();
        return op.getKey();
    }
    
    public void removeOffertaProdotto(Key key){
        Datastore.delete(key);
    }
}
